package com.youlai.boot.system.model.dto;

import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.format.DateTimeFormat;
import cn.idev.excel.annotation.format.NumberFormat;
import cn.idev.excel.annotation.write.style.*;
import lombok.Data;
import cn.idev.excel.enums.BooleanEnum;
import cn.idev.excel.enums.poi.HorizontalAlignmentEnum;


import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 大盘数据Excel模型
 *
 * @author Jason
 * @since 2025/5/13
 */
@Data
@ColumnWidth(25) // 设置默认列宽
@HeadStyle(fillForegroundColor = 22) // 设置表头背景色浅灰色
@HeadFontStyle(fontHeightInPoints = 11, bold = BooleanEnum.TRUE) // 设置表头字体
@ContentFontStyle(fontHeightInPoints = 10) // 设置内容字体
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)//设置字体居中
public class BigcapExcelDTO {

    @ExcelProperty(value = "日期", order = 1)
    @DateTimeFormat("yyyy-MM-dd")
    @ColumnWidth(15)
    private LocalDate date;

    @ExcelProperty(value = "流量指数", order = 2)
    @NumberFormat("#,##0")
    private Long trafficIndex;

    @ExcelProperty(value = "流量指数同比(年)", order = 3)
    @NumberFormat("0.00%")
    private String trafficIndexYoy;

    @ExcelProperty(value = "访客指数", order = 4)
    @NumberFormat("#,##0")
    private Long visitorIndex;

    @ExcelProperty(value = "访客指数同比(年)", order = 5)
    @NumberFormat("0.00%")
    private String visitorIndexYoy;

    @ExcelProperty(value = "关注人数", order = 6)
    @NumberFormat("#,##0")
    private Integer followers;

    @ExcelProperty(value = "关注人数同比(年)", order = 7)
    @NumberFormat("0.00%")
    private String followersYoy;

    @ExcelProperty(value = "加购人数", order = 8)
    @NumberFormat("#,##0")
    private Integer addToCart;

    @ExcelProperty(value = "加购人数同比(年)", order = 9)
    @NumberFormat("0.00%")
    private String addToCartYoy;

    @ExcelProperty(value = "类目搜索指数", order = 10)
    @NumberFormat("#,##0")
    private Long categorySearchIndex;

    @ExcelProperty(value = "类目搜索指数同比(年)", order = 11)
    @NumberFormat("0.00%")
    private String categorySearchIndexYoy;

    @ExcelProperty(value = "类目点击指数", order = 12)
    @NumberFormat("#,##0")
    private Long categoryClickIndex;

    @ExcelProperty(value = "类目点击指数同比(年)", order = 13)
    @NumberFormat("0.00%")
    private String categoryClickIndexYoy;

    @ExcelProperty(value = "搜索点击率", order = 14)
    @NumberFormat("0.00%")
    private BigDecimal clickRate;

    @ExcelProperty(value = "搜索点击率同比(年)", order = 15)
    @NumberFormat("0.00%")
    private String clickRateYoy;

    @ExcelProperty(value = "成交金额指数", order = 16)
    @NumberFormat("#,##0")
    private Long transactionAmountIndex;

    @ExcelProperty(value = "成交金额指数同比(年)", order = 17)
    @NumberFormat("0.00%")
    private String transactionAmountIndexYoy;

    @ExcelProperty(value = "成交件数指数", order = 18)
    @NumberFormat("#,##0")
    private Long transactionVolumeIndex;

    @ExcelProperty(value = "成交件数指数同比(年)", order = 19)
    @NumberFormat("0.00%")
    private String transactionVolumeIndexYoy;

    @ExcelProperty(value = "成交转化率", order = 20)
    @NumberFormat("0.00%")
    private BigDecimal conversionRate;

    @ExcelProperty(value = "成交转化率同比(年)", order = 21)
    @NumberFormat("0.00%")
    private String conversionRateYoy;

    @ExcelProperty(value = "成交客单价", order = 22)
    @NumberFormat("¥#,##0.00")
    private BigDecimal customerPrice;

    @ExcelProperty(value = "成交客单价同比(年)", order = 23)
    @NumberFormat("0.00%")
    private String customerPriceYoy;

    @ExcelProperty(value = "品牌数", order = 24)
    @NumberFormat("#,##0")
    private Integer brandCount;

    @ExcelProperty(value = "品牌数同比(年)", order = 25)
    @NumberFormat("0.00%")
    private String brandCountYoy;

    @ExcelProperty(value = "被访问品牌数", order = 26)
    @NumberFormat("#,##0")
    private Integer visitedBrandCount;

    @ExcelProperty(value = "被访问品牌数同比(年)", order = 27)
    @NumberFormat("0.00%")
    private String visitedBrandCountYoy;

    @ExcelProperty(value = "动销品牌数", order = 28)
    @NumberFormat("#,##0")
    private Integer activeBrandCount;

    @ExcelProperty(value = "动销品牌数同比(年)", order = 29)
    @NumberFormat("0.00%")
    private String activeBrandCountYoy;

    @ExcelProperty(value = "店铺数", order = 30)
    @NumberFormat("#,##0")
    private Integer storeCount;

    @ExcelProperty(value = "店铺数同比(年)", order = 31)
    @NumberFormat("0.00%")
    private String storeCountYoy;

    @ExcelProperty(value = "被访问店铺数", order = 32)
    @NumberFormat("#,##0")
    private Integer visitedStoreCount;

    @ExcelProperty(value = "被访问店铺数同比(年)", order = 33)
    @NumberFormat("0.00%")
    private String visitedStoreCountYoy;

    @ExcelProperty(value = "动销店铺数", order = 34)
    @NumberFormat("#,##0")
    private Integer activeStoreCount;

    @ExcelProperty(value = "动销店铺数同比(年)", order = 35)
    @NumberFormat("0.00%")
    private String activeStoreCountYoy;

    @ExcelProperty(value = "被访问商品数", order = 36)
    @NumberFormat("#,##0")
    private Integer visitedProductCount;

    @ExcelProperty(value = "被访问商品数同比(年)", order = 37)
    @NumberFormat("0.00%")
    private String visitedProductCountYoy;

    @ExcelProperty(value = "动销商品数", order = 38)
    @NumberFormat("#,##0")
    private Integer activeProductCount;

    @ExcelProperty(value = "动销商品数同比(年)", order = 39)
    @NumberFormat("0.00%")
    private String activeProductCountYoy;

}